package SparkExercises.ZuoYe4;

import org.apache.spark.sql.*;

import java.util.Properties;

/**
 * 请自行准备测试数据（不少于1千行数据），
 * 然后编写一个spark sql程序，
 * 完成某种数据分析（如求最大值、最小值、排序、计数、求和等等），
 * 最后把分析后的数据写入到mysql数据库中。
 */

public class ZuoYe4 {
    public static void main(String[] args) throws AnalysisException {
        SparkSession session = SparkSession.builder().master("local").appName(ZuoYe4.class.getName()).getOrCreate();

        Dataset<Row> json = session.read().json("./data/demoData1.json");
        json.createTempView("student");

        Dataset<Row> sql = session.sql("select institute, sex,name, count(studentId) as count, round(avg(score),2) as avg from student group by institute,name,sex");

        sql.show();
//        将Dataset<Row>对象的数据以json形式写入到文件中
//        sql.write().json("./outData/out_a");

        Properties properties = new Properties();
//        properties.setProperty("user", "root");
//        properties.setProperty("password","123123");

        properties.setProperty("user", "root");
        properties.setProperty("password","Lzzy@2022");

        sql.write()
                .mode(SaveMode.Append)
                .jdbc("jdbc:mysql://192.168.2.100:3306/demodata?serverTimezone=GMT%2B8&useUnicode=true&charachterEncoding=UTF-8","student",properties);

    }
}
